package com.ruoyi.controller.archives;

import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.domain.archives.PAdoptInfo;
import com.ruoyi.service.archives.PAdoptInfoService;
import org.aspectj.weaver.loadtime.Aj;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

/**
 * @Author lz
 * @Version 1.0
 * @Company 滁州大健康与养老产业研究院
 * @ClassName PAdoptInfoController
 * @Description 爬山猪领养的控制层
 * @Date 2022/05/22 19:20
 */
@RestController
@RequestMapping("/archives/adoptInfo")
public class PAdoptInfoController extends BaseController {

    protected final Logger logger = LoggerFactory.getLogger(this.getClass());

    @Resource
    public PAdoptInfoService adoptInfoService;

    /**
     * 分页模糊查询所有领养人的信息
     * @param adoptInfo 领养人信息
     * @return 查询的所有数据
     */
    @PreAuthorize("@ss.hasPermi('archives:dataDetails:query')")
    @GetMapping
    public TableDataInfo getAdoptInfoPageList(PAdoptInfo adoptInfo) {
        startPage();
        List<PAdoptInfo> adoptInfoList = adoptInfoService.getAdoptInfoList(adoptInfo);
        return getDataTable(adoptInfoList);
    }



    /**
     * 添加领养人信息
     * @param pAdoptInfo 领养人信息
     * @return 结果
     */
    @PreAuthorize("@ss.hasPermi('archives:dataDeatils:add')")
    @PostMapping("/createInfo")
    public AjaxResult addAdoptInfo(@RequestBody PAdoptInfo pAdoptInfo) {

        int row = adoptInfoService.addAdoptInfo(pAdoptInfo);

        if (row == -1) {
            logger.error("添加领养人信息失败，手机号被注册，领养人信息如下：======>{}",pAdoptInfo);
            return AjaxResult.error("手机号被注册");
        }
        if (row <= 0) {
            logger.error("添加领养人信息失败，领养人信息如下：======>{}",pAdoptInfo);
            return AjaxResult.error("添加领养人信息失败");
        }
        return AjaxResult.success("添加领养人信息成功");
    }

    /**
     *  根据用户id修改用户信息
     * @param pAdoptInfo 用户信息
     * @return 受影响的行数
     */
    @PreAuthorize("@ss.hasPermi('archives:dataDeatils:edit')")
    @PutMapping
    public AjaxResult updateAdoptInfoById(@RequestBody PAdoptInfo pAdoptInfo) {
        int row = adoptInfoService.updateAdoptInfoById(pAdoptInfo);

        if (row <= 0) {
            logger.error("修改领养人信息失败，领养人信息如下：======>{}",pAdoptInfo);
            return AjaxResult.error("修改领养人信息失败");
        }

        return AjaxResult.success("修改领养人信息成功");
    }


    /**
     * 根据用户id批量逻辑删除领养人信息
     * @param adoptId 要删除的领养人id
     * @return 受影响的行数
     */
    @PreAuthorize("@ss.hasPermi('archives:dataDeatils:remove')")
    @DeleteMapping("/{adoptId}")
    public AjaxResult deleteAdoptInfoById(@PathVariable  Long[] adoptId) {

        int row = adoptInfoService.deleteAdoptInfoById(adoptId);

        if (row <= 0) {
            logger.error("删除领养人信息是失败，要删除的领养人id为：======>{}",adoptId);
            return AjaxResult.error("删除领养人信息失败");
        }
        return AjaxResult.success("删除领养人信息成功");
    }
}
